package org.springblade.third.spi;

import org.springblade.third.dto.ThirdRequest;
import org.springblade.third.dto.ThirdResponse;

/**
 * 第三方渠道提供方 SPI。
 * 每个第三方渠道在独立模块中实现该接口，支持多产品。
 */
public interface ChannelProvider {

    /**
     * 是否支持该渠道与产品组合。
     */
    boolean supports(String channelCode, String productCode);

    /**
     * 执行请求并返回标准响应。
     */
    <T> ThirdResponse<T> execute(ThirdRequest request);
}


